package com.weixin.controller;

import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

import com.frame.ar.model.BJUIPager;
import com.frame.ar.vo.AjaxDone;
import com.frame.jfinal.controller.BaseController;
import com.weixin.model.AppConfig;
import com.weixin.model.AppMenu;
import com.weixin.service.WxBaseDataService;

/*******************************************
 * 作用描述：微信基础数据管理控制请求控制器
 ******************************************* 
 * @author LRC
 * @createDate 2015-9-20
 * @version v1.0
 * @updateRecord 格式：时间，作者，修改说明
 ******************************************* 
 * 
 */
public class WxBaseDataContoller extends BaseController {

	/*******************************************
	 * 功能描述：微信应用号管理
	 ******************************************* 
	 * @createDate 2015-9-20 by LRC
	 * @updateRecord 格式：时间，作者，修改说明
	 ******************************************* 
	 * 
	 */
	public void appConfigMgr() {
		Object id = null;
		AjaxDone  done = null;
		switch (getAction()) {
			case "mgr"://跳转到管理页面
				BJUIPager pager = new BJUIPager();
				pager.initQueryParams(this, "like", "action", "_", "total");
				pager.getQr().put("dataStatus", "=", 1);
				pager.setOrderDefaultValue("insertTime desc");
				AppConfig.dao.findByPage(pager);
				setAttr("pager", pager);
				render("appConfig.html");
				return;
			case "get":
				id=getPara("id");
				AppConfig app = AppConfig.dao.findById(id);
				renderJson(app);
				return;
			case "save":
				done = AppConfig.dao.saveForm(this);
				break;
			case "del":
				id=getPara("id");
				boolean success = AppConfig.dao.deleteById(id);
				done = new AjaxDone();
				done.setStatusCode(success ? AjaxDone.OK : AjaxDone.ERROR);
				break;
			default:
				renderError(404);
		}
		renderJson(done);
	}

	/*******************************************
	 * 功能描述：微信应用菜单按钮管理
	 ******************************************* 
	 * @createDate 2015-9-20 by LRC
	 * @updateRecord 格式：时间，作者，修改说明
	 ******************************************* 
	 * 
	 */
	public void appMenuButtonMgr() {
		AjaxDone done = null;
		Object appcfgId;
		try{
			switch (getAction()) {
				case "save"://保存菜单
					JSONObject obj = JSONObject.fromObject(getPara("menuInfo"));
					done = AppMenu.dao.saveForm(obj);
					break;
				case "get"://获取应用菜单
					Object id=getPara("id");
					AppMenu menu = AppMenu.dao.findById(id);
					renderJson(menu);
					return;
				case "menuTree"://返回菜单树
					appcfgId = getPara("appcfgId");
					List<Map<String,Object>> menus = WxBaseDataService.getAppMenuTree(appcfgId);
					renderJson(menus);
					return;
				case "del"://删除菜单
					boolean success = WxBaseDataService.delAppMenu(this.getParaToInt("id"));
					this.actionResult(success);
					return;
				default:
					break;
			}
			renderJson(done);
		}catch(Exception e){
			e.printStackTrace();
			this.actionResult(false,"系统出现异常");
		}
	}
}
